/*----------------------------------------------------------------------------*\
|
|						Public Interface to Muse Technology
|
|							     www.muse.com
| Author : SunJun 
| Email : sundoom@msn.com
\*----------------------------------------------------------------------------*/

//////////////////////////////////////////////////////////////////////////
// $Id: MainView.h,v 1.1 2008/12/26 12:13:54 sunjun Exp $
//////////////////////////////////////////////////////////////////////////

#pragma once

//////////////////////////////////////////////////////////////////////////
// MainView window

#define TIMER_PAINT	100

class MainView : public CWnd
{
// Construction
public:
	MainView();
	virtual ~MainView();	
	
protected:
	// Generated message map functions
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnDestroy();
	afx_msg void OnTimer(UINT_PTR nIDEvent);	
	afx_msg void OnPaint();
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
	DECLARE_MESSAGE_MAP()

public:
	VOID init();
	VOID run();
	VOID exit();

private:
	GraphPtr mGraphPtr;
	MeshPtr mMeshPtr;
	Dict::KeyPtr mWVPPtr;

	F32 mFov, mAspect, mZNear, mZFar;
	Vector3 mEye, mCenter, mUp;	
};

//////////////////////////////////////////////////////////////////////////